The present invention relates to memory devices, and more specifically, to phase change memory (PCM) devices, and their use in standard memory and content addressable memory (CAM) applications.
PCM is a form of resistive non-volatile computer random-access memory (RAM) that stores data by altering the state of the matter from which the device is fabricated. The structure of the material can change rapidly back and forth between amorphous and crystalline on a microscopic scale. In the amorphous or disordered phase, the material has a high electrical resistance; in the crystalline or ordered phase, its resistance is reduced. This allows electrical currents to be switched on and off, representing digital high and low states.
CAM is a special type of computer memory used in certain very high speed searching applications. It is also known as associative memory or associative storage. Most existing CAM products are volatile technologies based on SRAM or DRAM cells. CAMS using resistance-change memory elements such as, for example, Chalcogenide phase change materials, have been found to allow for density improvements in the formation of a CAM.
Unlike standard computer memory (e.g., RAM) in which the user supplies a memory address and the RAM returns the data word stored at that address, a CAM is designed such that the user supplies a data word and the CAM searches its entire memory to see if that data word is stored anywhere in it. If the data word is found, the CAM returns a list of one or more storage addresses where the word was found (and in some architectures, it also returns the data word, or other associated pieces of data). Thus, a CAM is the hardware embodiment of what, in software terms, could be called an associative array. Binary CAM is the simplest type of CAM which uses data search words comprised entirely of 1s and 0s. Ternary CAM (TCAM) allows a third matching state of “X” or “Don't Care” for one or more bits in the stored data-word, thus adding flexibility to the search. For example, a TCAM might have a stored word of “10XX0” which will match any of the four search words “10000”, “10010”, “10100”, or “10110”.